package org.springblade.modules.admin.service.erp;

import org.springblade.modules.admin.dto.erp.PartnerCloudTableDeleteBatchDTO;
import org.springblade.modules.admin.dto.erp.PartnerCloudTableFilterDTO;
import org.springblade.modules.admin.dto.erp.PartnerCloudTableSaveOrUpdateDTO;
import org.springblade.modules.admin.dto.erp.PartnerCloudTableSearchFullDTO;
import org.springblade.modules.admin.vo.erp.tables.PartnerCloudTableItemListVO;
import org.springblade.modules.admin.vo.erp.tables.PartnerCloudTableItemVO;

import java.io.File;

/**
 * 伙伴云 工作区-表格 service
 * @author Sharry
 * @since 2024-12-24
 */
public interface IPartnerCloudSpaceTableService {

	/**
	 * 忽略筛选器查询表格数据
	 * @param searchFullDTO 筛选条件
	 * @return 表格数据
	 */
	PartnerCloudTableItemListVO searchTable(PartnerCloudTableSearchFullDTO searchFullDTO);

	/**
	 * 忽略筛选器全量查询表格数据
	 * @param searchFullDTO 筛选条件
	 * @return 表格数据
	 */
	PartnerCloudTableItemListVO searchFullTable(PartnerCloudTableSearchFullDTO searchFullDTO);

	/**
	 * 根据筛选条件查询表格数据
	 * @param filterDTO 筛选条件
	 * @return 表格数据
	 */
	PartnerCloudTableItemListVO searchTableByCondition(PartnerCloudTableFilterDTO filterDTO);

	/**
	 * 获取数据详情
	 * @param itemId 表格项ID
	 * @return 表格项数据
	 */
	PartnerCloudTableItemVO getTableItem(String itemId);

	/**
	 * 批量删除数据
	 * @param deleteBatchDTO 批量删除条件
	 * @return 是否成功删除
	 */
	boolean deleteTableItemsBatch(PartnerCloudTableDeleteBatchDTO deleteBatchDTO);

	/**
	 * 批量更新或创建数据
	 * @param saveOrUpdateDTO 批量更新或创建条件
	 * @return 是否成功更新或创建
	 */
	boolean saveOrUpdateByFields(PartnerCloudTableSaveOrUpdateDTO saveOrUpdateDTO);

	/**
	 * 上传文件
	 */
	String uploadFile(File file);
}
